import farmaweb.Cliente
import farmaweb.Produto
import java.text.DateFormat
import java.text.SimpleDateFormat
import farmaweb.Fornecedor

class BootStrap {

    def init = { servletContext ->
        // Verifica se os dados de teste já existem nas tabelas do SGBD:
        if(!Cliente.count()) {
            // Em caso negativo, cria alguns clientes:
            new Cliente(razaoSocial: 'Farmácias Pé Na Cova Ltda.',
                    cnpj: '23.456.789/0001-10',
                    inscricaoEstadual: '1.234.567',
                    fone: '(81)3333-0001',
                    fax: '(81)3333-0002',
                    email: 'pe.na.cova@penacova.com.br',
                    pessoaContato: 'Fulano de Tal',
                    logradouro: 'Rua do Futuro',
                    numero: '1234',
                    complemento: '',
                    bairro: 'Torreão',
                    cidade: 'Recife',
                    uf: 'PE',
                    cep: '12345-789').save(failOnError: true)
            new Cliente(razaoSocial: 'Farmácia Um Canto Só.',
                    cnpj: '00.456.789/0001-10',
                    inscricaoEstadual: '1.224.567',
                    fone: '(81)3333-0003',
                    fax: '(81)3333-0004',
                    email: 'um.canto.soh@umcanto.com.br',
                    pessoaContato: 'José da Silva',
                    logradouro: 'Rua 48',
                    numero: '5',
                    complemento: 'lj. 10',
                    bairro: 'Espinheiro',
                    cidade: 'Recife',
                    uf: 'PE',
                    cep: '12345-789').save(failOnError: true)
        }
        if(!Fornecedor.count()) {
            // alguns fornecedores:
            new Fornecedor(razaoSocial: 'Bayer S/A',
                    cnpj: '07.278.198/0001-19',
                    inscricaoEstadual: '1.234.567',
                    fone: '(81)3333-0001',
                    fax: '(81)3333-0002',
                    email: 'pe.na.cova@penacova.com.br',
                    pessoaContato: 'Fulano de Tal',
                    logradouro: 'Rua do Futuro',
                    numero: '1234',
                    complemento: '',
                    bairro: 'Torreão',
                    cidade: 'Recife',
                    uf: 'PE',
                    cep: '12345-789').save(failOnError: true)
            new Fornecedor(razaoSocial: 'Medley Farmacêutica S/A',
                    cnpj: '05.662.546/0001-35',
                    inscricaoEstadual: '1.224.567',
                    fone: '(81)3333-0003',
                    fax: '(81)3333-0004',
                    email: 'um.canto.soh@umcanto.com.br',
                    pessoaContato: 'José da Silva',
                    logradouro: 'Rua 48',
                    numero: '5',
                    complemento: 'lj. 10',
                    bairro: 'Espinheiro',
                    cidade: 'Recife',
                    uf: 'PE',
                    cep: '12345-789').save(failOnError: true)
        }
        // E alguns produtos:
        if(!Produto.count()) {
            SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
            Date dataFabricacao = df.parse("01/10/2012")
            Date dataValidade = df.parse("01/10/2014")
            new Produto(codigoBarras: '123ABCDEF',
                    nome: 'Aspirina',
                    descricao: 'Blister com 4 aspirinas Bayer',
                    dataFabricacao: dataFabricacao,
                    dataValidade: dataValidade,
                    quantidadeEstoque: 300,
                    precoVenda: 1.25,
                    fornecedor: Fornecedor.findByRazaoSocial('Bayer S/A')).save(failOnError: true)
            new Produto(codigoBarras: '124ABCDEF',
                    nome: 'Cebion 1g',
                    descricao: 'Tubo de Cebion 1g',
                    dataFabricacao: dataFabricacao,
                    dataValidade: dataValidade,
                    quantidadeEstoque: 100,
                    precoVenda: 10.72,
                    fornecedor: Fornecedor.findByRazaoSocial('Bayer S/A')).save(failOnError: true)
            new Produto(codigoBarras: '125ABCDEF',
                    nome: 'Pressat 5mg',
                    descricao: 'Caixa de Pressat 5mg',
                    dataFabricacao: dataFabricacao,
                    dataValidade: dataValidade,
                    quantidadeEstoque: 20,
                    precoVenda: 30.75,
                    fornecedor: Fornecedor.findByRazaoSocial('Medley Farmacêutica S/A')).save(failOnError: true)
        }
    }
    def destroy = {
    }
}
